iT邦幫忙

2022 iThome 鐵人賽

DAY 18
1
自我挑戰組

簡介密碼學系列 第 18

Day18- Diffie–Hellman

  • 分享至 

  • xImage
  •  

最早的非對稱式公鑰演算法

Diffie-Hellman在1976年就由 惠特菲爾德·迪菲和馬丁·赫爾曼 所發表,但它並不是一個加解密的密碼系統,
它的目的是金鑰交換用來輔助對稱式加密演算法,而不是用來保護傳輸的訊息,所以說他是最早的非對稱式公鑰演算法而不會說是最早的非對稱式加密,在現代密碼學中的地位重要,是很多網路生份認證協定的基礎

又是數學問題

和RSA等公鑰演算法一樣,DF(Diffie–Hellman)也是建立在一種數學難題上,
不同於RSA使用較為常見的質因數分解,DF使用了離散對數(英語:Discrete logarithm)
離散對數是一種融合了模數運算和原根的對數運算大概如下:
當有模數m和m的原根l時,對l做k次方, mod m 成x,
在只有m、x、l沒有k時非常困難算出k是多少,

DF如何運作

https://ithelp.ithome.com.tw/upload/images/20220919/20151821a0CoFc9hyQ.png

  • 兩人Alice跟Bob會選定一個模數p(質數)何其原根g,兩數可以公開
  • 兩人各選一個私鑰,Alice選a,Bob選b,要妥善保護
  • 接者Alice計算A=g^a mod p, Bob計算B=g^b mod p
  • 交換A和B給彼此
  • Alice接受到B後計算B^a mod p, 而Bob計算A^b mod p
  • 兩人分別會算出 g^ba mod p 和 g^ab mod p
  • 兩個值會相等,就能用來當對稱式加密的金鑰

簡單的例子

今天選用模數p=13,底數g=5
Alice選a=7,Bob選b=3
Alice計算A=5^7 = 8 mod 13
Bob計算B=5^3 = 8 mod 13
共享金鑰key=8^7 = 5 mod 13或8^3 = 5 mod 13
5就是共享金鑰

安全性

即便在傳輸的過程中A,B被攔截了
攻擊者很難從A(B)、g、p去算出a(b)當p足夠安全時(通常為1024bits以上)
當然p的選擇不是夠大就好還有很多要考慮
可以參考(https://zh.wikipedia.org/zh-tw/%E5%AE%89%E5%85%A8%E7%B4%A0%E6%95%B0)
只要p安全了,要從A(g^a mod p)上面取下a並沒有已知的非量子快速演算法
只能透過硬暴來找尋目標a,但這樣就要花費超級多的時間和資源了


上一篇
Day17- RSA2
下一篇
Day19- ElGamal加密算法
系列文
簡介密碼學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言